/*
moxl - Modular XML Library
Copyright (c) 2007, Malcolm Sparks

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
package moxl.parser.resource;

import java.io.InputStream;

import moxl.raw.XmlResource;

public class ClassResourceStreamXmlResource implements XmlResource
{
	private final Class<? extends Object> anchor;
	private final String path;

	public ClassResourceStreamXmlResource(Class<? extends Object> anchor, String path)
	{
		this.anchor = anchor;
		this.path = path;
	}

	public String getName()
	{
		return path;
	}

	public InputStream getResourceAsStream()
	{
		InputStream result = anchor.getResourceAsStream(path);
		if (result == null)
		{
			throw new IllegalStateException("No resource found relative to " + anchor.getName() + ": " + path);
		}
		return result;
	}

	public boolean isAnonymous()
	{
		return false;
	}

	@Override
	public String toString()
	{
		return anchor + "!" + path;
	}
}
